<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs">
<head>
<title>库特性测试宏 (C++20)</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">
<link rel="shortcut icon" href="../../../common/favicon.ico">
<link rel="stylesheet" href="../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_zh_:resourceloader:filter:minify-css:7:15cea3ec788a65b5187d4018eed543bf */</style>

<script src="../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/utility/feature_test","wgTitle":"cpp/utility/feature test","wgCurRevisionId":64944,"wgArticleId":11640,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"zh","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"zh","wgMonthNames":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgMonthNamesShort":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgRelevantPageName":"cpp/utility/feature_test","wgUserVariant":"zh","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"zh","language":"zh","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-MathJax":1,"gadget-ColiruCompiler":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_zh_:resourceloader:filter:minify-js:7:258d7cd6aa9aa67dee25e01fb6a9e505 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_utility_feature_test skin-cppreference2 action-view cpp-navbar">
        <!-- header -->
        <!-- /header -->
        <!-- content -->
<div id="cpp-content-base">
            <div id="content">
                <a id="top"></a>
                <div id="mw-js-message" style="display:none;"></div>
                                <!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading">库特性测试宏 <span class="t-mark-rev t-since-cxx20">(C++20)</span></h1>
                <!-- /firstHeading -->
                <!-- bodyContent -->
                <div id="bodyContent">
                                        <!-- tagline -->
                    <div id="siteSub">来自cppreference.com</div>
                    <!-- /tagline -->
                                        <!-- subtitle -->
                    <div id="contentSub"><span class="subpages">&lt; <a href="../../cpp.html" title="cpp">cpp</a>‎ | <a href="../utility.html" title="cpp/utility">utility</a></span></div>
                    <!-- /subtitle -->
                                                            <!-- bodycontent -->
                    <div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr"><div class="t-navbar" style=""><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../language.html" title="cpp/language">语言</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../header.html" title="cpp/header">标准库头文件</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../freestanding.html" title="cpp/freestanding"> 自立与有宿主实现</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../named_req.html" title="cpp/named req">具名要求</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html#.E8.AF.AD.E8.A8.80.E6.94.AF.E6.8C.81" title="cpp/utility">语言支持库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../concepts.html" title="cpp/concepts">概念库</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../error.html" title="cpp/error">诊断库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../utility.html" title="cpp/utility">工具库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../string.html" title="cpp/string">字符串库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../container.html" title="cpp/container">容器库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../iterator.html" title="cpp/iterator">迭代器库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../ranges.html" title="cpp/ranges"> 范围库</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../algorithm.html" title="cpp/algorithm">算法库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../numeric.html" title="cpp/numeric">数值库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../locale.html" title="cpp/locale">本地化库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../io.html" title="cpp/io">输入/输出库</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../filesystem.html" title="cpp/filesystem">文件系统库</a> <span class="t-mark-rev t-since-cxx17">(C++17)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../regex.html" title="cpp/regex">正则表达式库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../atomic.html" title="cpp/atomic">原子操作库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../thread.html" title="cpp/thread">线程支持库</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../experimental.html" title="cpp/experimental">技术规范</a> </td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../utility.html" title="cpp/utility">工具库</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv-h1"><td colspan="5"> 语言支持</td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../types.html" title="cpp/types">类型支持</a>（基本类型、 RTTI 、类型特征）    </td></tr>
<tr class="t-nv"><td colspan="5"> <strong class="selflink">库功能特性测试宏</strong> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../memory.html" title="cpp/memory">动态内存管理</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="program.html" title="cpp/utility/program">程序工具</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../error.html" title="cpp/error">错误处理</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../coroutine.html" title="cpp/coroutine">协程支持</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="variadic.html" title="cpp/utility/variadic">变参数函数</a> </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="launder.html" title="cpp/utility/launder"><span class="t-lines"><span>launder</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="initializer_list.html" title="cpp/utility/initializer list"><span class="t-lines"><span>initializer_list</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="source_location.html" title="cpp/utility/source location"><span class="t-lines"><span>source_location</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 三路比较 <span class="t-mark-rev t-since-cxx20">(C++20)</span></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/three_way_comparable.html" title="cpp/utility/compare/three way comparable"><span class="t-lines"><span>three_way_comparable</span><span>three_way_comparable_with</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/strong_ordering.html" title="cpp/utility/compare/strong ordering"><span class="t-lines"><span>strong_ordering</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/weak_ordering.html" title="cpp/utility/compare/weak ordering"><span class="t-lines"><span>weak_ordering</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/partial_ordering.html" title="cpp/utility/compare/partial ordering"><span class="t-lines"><span>partial_ordering</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/common_comparison_category.html" title="cpp/utility/compare/common comparison category"><span class="t-lines"><span>common_comparison_category</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/compare_three_way_result.html" title="cpp/utility/compare/compare three way result"><span class="t-lines"><span>compare_three_way_result</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/compare_three_way.html" title="cpp/utility/compare/compare three way"><span class="t-lines"><span>compare_three_way</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/strong_order.html" title="cpp/utility/compare/strong order"><span class="t-lines"><span>strong_order</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/weak_order.html" title="cpp/utility/compare/weak order"><span class="t-lines"><span>weak_order</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/partial_order.html" title="cpp/utility/compare/partial order"><span class="t-lines"><span>partial_order</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/compare_strong_order_fallback.html" title="cpp/utility/compare/compare strong order fallback"><span class="t-lines"><span>compare_strong_order_fallback</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/compare_weak_order_fallback.html" title="cpp/utility/compare/compare weak order fallback"><span class="t-lines"><span>compare_weak_order_fallback</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/compare_partial_order_fallback.html" title="cpp/utility/compare/compare partial order fallback"><span class="t-lines"><span>compare_partial_order_fallback</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="compare/named_comparison_functions.html" title="cpp/utility/compare/named comparison functions"><span class="t-lines"><span>is_eq</span><span>is_neq</span><span>is_lt</span><span>is_lteq</span><span>is_gt</span><span>is_gteq</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv-h1"><td colspan="5">通用工具</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="../chrono.html" title="cpp/chrono"> 日期和时间</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="functional.html" title="cpp/utility/functional"> 函数对象</a> </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="bitset.html" title="cpp/utility/bitset"><span class="t-lines"><span>bitset</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"> <a href="format.html" title="cpp/utility/format"> 格式化库</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="hash.html" title="cpp/utility/hash"><span class="t-lines"><span>hash</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="integer_sequence.html" title="cpp/utility/integer sequence"><span class="t-lines"><span>integer_sequence</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 关系运算符 <span class="t-mark-rev t-deprecated-cxx20">(C++20 中弃用)</span> </td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="rel_ops/operator_cmp.html" title="cpp/utility/rel ops/operator cmp"><span class="t-lines"><span>rel_ops::operator!=</span><span>rel_ops::operator&gt;</span></span></a></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="rel_ops/operator_cmp.html" title="cpp/utility/rel ops/operator cmp"><span class="t-lines"><span>rel_ops::operator&lt;=</span><span>rel_ops::operator&gt;=</span></span></a></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 整数比较函数</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="intcmp.html" title="cpp/utility/intcmp"><span class="t-lines"><span>cmp_equal</span><span>cmp_less</span><span>cmp_less_than</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="intcmp.html" title="cpp/utility/intcmp"><span class="t-lines"><span>cmp_not_equal</span><span>cmp_greater</span><span>cmp_greater_than</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="in_range.html" title="cpp/utility/in range"><span class="t-lines"><span>in_range</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> swap 与类型运算</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../algorithm/swap.html" title="cpp/algorithm/swap"><span class="t-lines"><span>swap</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="ranges/swap.html" title="cpp/utility/ranges/swap"><span class="t-lines"><span>ranges::swap</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="exchange.html" title="cpp/utility/exchange"><span class="t-lines"><span>exchange</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx14">(C++14)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="declval.html" title="cpp/utility/declval"><span class="t-lines"><span>declval</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="forward.html" title="cpp/utility/forward"><span class="t-lines"><span>forward</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="move.html" title="cpp/utility/move"><span class="t-lines"><span>move</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="move_if_noexcept.html" title="cpp/utility/move if noexcept"><span class="t-lines"><span>move_if_noexcept</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="as_const.html" title="cpp/utility/as const"><span class="t-lines"><span>as_const</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="to_underlying.html" title="cpp/utility/to underlying"><span class="t-lines"><span>to_underlying</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 常用词汇类型</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="pair.html" title="cpp/utility/pair"><span class="t-lines"><span>pair</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="tuple.html" title="cpp/utility/tuple"><span class="t-lines"><span>tuple</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="optional.html" title="cpp/utility/optional"><span class="t-lines"><span>optional</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="any.html" title="cpp/utility/any"><span class="t-lines"><span>any</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="variant.html" title="cpp/utility/variant"><span class="t-lines"><span>variant</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="tuple_size.html" title="cpp/utility/tuple size"><span class="t-lines"><span>tuple_size</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="tuple_element.html" title="cpp/utility/tuple element"><span class="t-lines"><span>tuple_element</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="apply.html" title="cpp/utility/apply"><span class="t-lines"><span>apply</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="make_from_tuple.html" title="cpp/utility/make from tuple"><span class="t-lines"><span>make_from_tuple</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"> <br>
</td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 初等字符串转换</td></tr>
<tr class="t-nv-col-table"><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="to_chars.html" title="cpp/utility/to chars"><span class="t-lines"><span>to_chars</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="from_chars.html" title="cpp/utility/from chars"><span class="t-lines"><span>from_chars</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
</table></div></td><td><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em">
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="chars_format.html" title="cpp/utility/chars format"><span class="t-lines"><span>chars_format</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div></div></td></tr>
</table></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> 栈踪</td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="stacktrace_entry.html" title="cpp/utility/stacktrace entry"><span class="t-lines"><span>stacktrace_entry</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="basic_stacktrace.html" title="cpp/utility/basic stacktrace"><span class="t-lines"><span>basic_stacktrace</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div></div></td></tr>
</table></div></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div></div>
<p>若包含头文件 <a href="../header/version.html" title="cpp/header/version"><tt>&lt;version&gt;</tt></a> 或指定于表中的头文件之一，则定义对应的宏。
</p>
<table class="wikitable sortable">

<tr>
<th> 宏名
</th>
<th> 值
</th>
<th> 头文件
</th></tr>
<tr>
<td>  <code>__cpp_lib_addressof_constexpr</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_allocator_traits_is_always_equal</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a> <a href="../header/scoped_allocator.html" title="cpp/header/scoped allocator"><tt>&lt;scoped_allocator&gt;</tt></a> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/deque.html" title="cpp/header/deque"><tt>&lt;deque&gt;</tt></a> <a href="../header/forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a> <a href="../header/list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a> <a href="../header/vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a> <a href="../header/set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a> <a href="../header/unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_any</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/any.html" title="cpp/header/any"><tt>&lt;any&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_apply</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_array_constexpr</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a> <a href="../header/array.html" title="cpp/header/array"><tt>&lt;array&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_as_const</code>
</td>
<td> 201510L
</td>
<td> <a href="../header/utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_assume_aligned</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_flag_test</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_float</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_is_always_lock_free</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_lock_free_type_aliases</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_ref</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_shared_ptr</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_value_initialization</code>
</td>
<td> 201911L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_atomic_wait</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_barrier</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/barrier.html" title="cpp/header/barrier"><tt>&lt;barrier&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_bind_front</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_bit_cast</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/bit.html" title="cpp/header/bit"><tt>&lt;bit&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_bitops</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/bit.html" title="cpp/header/bit"><tt>&lt;bit&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_bool_constant</code>
</td>
<td> 201505L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_bounded_array_traits</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_boyer_moore_searcher</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_byte</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/cstddef.html" title="cpp/header/cstddef"><tt>&lt;cstddef&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_char8_t</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/atomic.html" title="cpp/header/atomic"><tt>&lt;atomic&gt;</tt></a> <a href="../header/filesystem.html" title="cpp/header/filesystem"><tt>&lt;filesystem&gt;</tt></a> <a href="../header/istream.html" title="cpp/header/istream"><tt>&lt;istream&gt;</tt></a> <a href="../header/limits.html" title="cpp/header/limits"><tt>&lt;limits&gt;</tt></a> <a href="../header/locale.html" title="cpp/header/locale"><tt>&lt;locale&gt;</tt></a> <a href="../header/ostream.html" title="cpp/header/ostream"><tt>&lt;ostream&gt;</tt></a> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/string_view.html" title="cpp/header/string view"><tt>&lt;string_view&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_chrono</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/chrono.html" title="cpp/header/chrono"><tt>&lt;chrono&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_chrono_udls</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/chrono.html" title="cpp/header/chrono"><tt>&lt;chrono&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_clamp</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_complex_udls</code>
</td>
<td> 201309L
</td>
<td> <a href="../header/complex.html" title="cpp/header/complex"><tt>&lt;complex&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_concepts</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/concepts.html" title="cpp/header/concepts"><tt>&lt;concepts&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_algorithms</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_complex</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/complex.html" title="cpp/header/complex"><tt>&lt;complex&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_dynamic_alloc</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_functional</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_iterator</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_memory</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_numeric</code>
</td>
<td> 201911L
</td>
<td> <a href="../header/numeric.html" title="cpp/header/numeric"><tt>&lt;numeric&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_string</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_string_view</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/string_view.html" title="cpp/header/string view"><tt>&lt;string_view&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_tuple</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_utility</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_constexpr_vector</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_destroying_delete</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/new.html" title="cpp/header/new"><tt>&lt;new&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_enable_shared_from_this</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_endian</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/bit.html" title="cpp/header/bit"><tt>&lt;bit&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_erase_if</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/deque.html" title="cpp/header/deque"><tt>&lt;deque&gt;</tt></a> <a href="../header/forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a> <a href="../header/list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a> <a href="../header/vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a> <a href="../header/set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a> <a href="../header/unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_exchange_function</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_execution</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/execution.html" title="cpp/header/execution"><tt>&lt;execution&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_filesystem</code>
</td>
<td> 201703L
</td>
<td> <a href="../header/filesystem.html" title="cpp/header/filesystem"><tt>&lt;filesystem&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_format</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/format.html" title="cpp/header/format"><tt>&lt;format&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_gcd_lcm</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/numeric.html" title="cpp/header/numeric"><tt>&lt;numeric&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_generic_associative_lookup</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a> <a href="../header/set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_generic_unordered_lookup</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a> <a href="../header/unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_hardware_interference_size</code>
</td>
<td> 201703L
</td>
<td> <a href="../header/new.html" title="cpp/header/new"><tt>&lt;new&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_has_unique_object_representations</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_hypot</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/cmath.html" title="cpp/header/cmath"><tt>&lt;cmath&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_incomplete_container_elements</code>
</td>
<td> 201505L
</td>
<td> <a href="../header/forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a> <a href="../header/list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a> <a href="../header/vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_int_pow2</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/bit.html" title="cpp/header/bit"><tt>&lt;bit&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_integer_sequence</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_integral_constant_callable</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_interpolate</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/cmath.html" title="cpp/header/cmath"><tt>&lt;cmath&gt;</tt></a> <a href="../header/numeric.html" title="cpp/header/numeric"><tt>&lt;numeric&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_invoke</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_aggregate</code>
</td>
<td> 201703L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_constant_evaluated</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_final</code>
</td>
<td> 201402L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_invocable</code>
</td>
<td> 201703L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_layout_compatible</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_null_pointer</code>
</td>
<td> 201309L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_pointer_interconvertible</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_is_swappable</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_jthread</code>
</td>
<td> 201911L
</td>
<td> <a href="../header/stop_token.html" title="cpp/header/stop token"><tt>&lt;stop_token&gt;</tt></a> <a href="../header/thread.html" title="cpp/header/thread"><tt>&lt;thread&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_latch</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/latch.html" title="cpp/header/latch"><tt>&lt;latch&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_launder</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/new.html" title="cpp/header/new"><tt>&lt;new&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_list_remove_return_type</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a> <a href="../header/list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_logical_traits</code>
</td>
<td> 201510L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_make_from_tuple</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_make_reverse_iterator</code>
</td>
<td> 201402L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_make_unique</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_map_try_emplace</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_math_constants</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/numbers.html" title="cpp/header/numbers"><tt>&lt;numbers&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_math_special_functions</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/cmath.html" title="cpp/header/cmath"><tt>&lt;cmath&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_memory_resource</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/memory_resource.html" title="cpp/header/memory resource"><tt>&lt;memory_resource&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_node_extract</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a> <a href="../header/set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a> <a href="../header/unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_nonmember_container_access</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a> <a href="../header/array.html" title="cpp/header/array"><tt>&lt;array&gt;</tt></a> <a href="../header/deque.html" title="cpp/header/deque"><tt>&lt;deque&gt;</tt></a> <a href="../header/forward_list.html" title="cpp/header/forward list"><tt>&lt;forward_list&gt;</tt></a> <a href="../header/list.html" title="cpp/header/list"><tt>&lt;list&gt;</tt></a> <a href="../header/map.html" title="cpp/header/map"><tt>&lt;map&gt;</tt></a> <a href="../header/regex.html" title="cpp/header/regex"><tt>&lt;regex&gt;</tt></a> <a href="../header/set.html" title="cpp/header/set"><tt>&lt;set&gt;</tt></a> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a> <a href="../header/unordered_set.html" title="cpp/header/unordered set"><tt>&lt;unordered_set&gt;</tt></a> <a href="../header/vector.html" title="cpp/header/vector"><tt>&lt;vector&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_not_fn</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_nothrow_convertible</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_null_iterators</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_optional</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/optional.html" title="cpp/header/optional"><tt>&lt;optional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_parallel_algorithm</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a> <a href="../header/numeric.html" title="cpp/header/numeric"><tt>&lt;numeric&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_polymorphic_allocator</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_quoted_string_io</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/iomanip.html" title="cpp/header/iomanip"><tt>&lt;iomanip&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_ranges</code>
</td>
<td> 201911L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a> <a href="../header/ranges.html" title="cpp/header/ranges"><tt>&lt;ranges&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_raw_memory_algorithms</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_remove_cvref</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_result_of_sfinae</code>
</td>
<td> 201210L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_robust_nonmodifying_seq_ops</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_sample</code>
</td>
<td> 201603L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_scoped_lock</code>
</td>
<td> 201703L
</td>
<td> <a href="../header/mutex.html" title="cpp/header/mutex"><tt>&lt;mutex&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_semaphore</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/semaphore.html" title="cpp/header/semaphore"><tt>&lt;semaphore&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_shared_mutex</code>
</td>
<td> 201505L
</td>
<td> <a href="../header/shared_mutex.html" title="cpp/header/shared mutex"><tt>&lt;shared_mutex&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_shared_ptr_arrays</code>
</td>
<td> 201707L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_shared_ptr_weak_type</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_shared_timed_mutex</code>
</td>
<td> 201402L
</td>
<td> <a href="../header/shared_mutex.html" title="cpp/header/shared mutex"><tt>&lt;shared_mutex&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_shift</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/algorithm.html" title="cpp/header/algorithm"><tt>&lt;algorithm&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_smart_ptr_for_overwrite</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_source_location</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/source_location.html" title="cpp/header/source location"><tt>&lt;source_location&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_span</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/span.html" title="cpp/header/span"><tt>&lt;span&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_ssize</code>
</td>
<td> 201902L
</td>
<td> <a href="../header/iterator.html" title="cpp/header/iterator"><tt>&lt;iterator&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_starts_ends_with</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/string_view.html" title="cpp/header/string view"><tt>&lt;string_view&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_string_udls</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_string_view</code>
</td>
<td> 201803L
</td>
<td> <a href="../header/string.html" title="cpp/header/string"><tt>&lt;string&gt;</tt></a> <a href="../header/string_view.html" title="cpp/header/string view"><tt>&lt;string_view&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_syncbuf</code>
</td>
<td> 201803L
</td>
<td> <a href="../header/syncstream.html" title="cpp/header/syncstream"><tt>&lt;syncstream&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_three_way_comparison</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/compare.html" title="cpp/header/compare"><tt>&lt;compare&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_to_address</code>
</td>
<td> 201711L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_to_array</code>
</td>
<td> 201907L
</td>
<td> <a href="../header/array.html" title="cpp/header/array"><tt>&lt;array&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_to_chars</code>
</td>
<td> 201611L
</td>
<td> <a href="../header/charconv.html" title="cpp/header/charconv"><tt>&lt;charconv&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_transformation_trait_aliases</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_transparent_operators</code>
</td>
<td> 201510L
</td>
<td> <a href="../header/memory.html" title="cpp/header/memory"><tt>&lt;memory&gt;</tt></a> <a href="../header/functional.html" title="cpp/header/functional"><tt>&lt;functional&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_tuple_element_t</code>
</td>
<td> 201402L
</td>
<td> <a href="../header/tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_tuples_by_type</code>
</td>
<td> 201304L
</td>
<td> <a href="../header/tuple.html" title="cpp/header/tuple"><tt>&lt;tuple&gt;</tt></a> <a href="../header/utility.html" title="cpp/header/utility"><tt>&lt;utility&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_type_identity</code>
</td>
<td> 201806L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_type_trait_variable_templates</code>
</td>
<td> 201510L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_uncaught_exceptions</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/exception.html" title="cpp/header/exception"><tt>&lt;exception&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_unordered_map_try_emplace</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/unordered_map.html" title="cpp/header/unordered map"><tt>&lt;unordered_map&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_unwrap_ref</code>
</td>
<td> 201811L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_variant</code>
</td>
<td> 201606L
</td>
<td> <a href="../header/variant.html" title="cpp/header/variant"><tt>&lt;variant&gt;</tt></a>
</td></tr>
<tr>
<td>  <code>__cpp_lib_void_t</code>
</td>
<td> 201411L
</td>
<td> <a href="../header/type_traits.html" title="cpp/header/type traits"><tt>&lt;type_traits&gt;</tt></a>
</td></tr></table>

<!-- 
NewPP limit report
Preprocessor visited node count: 12572/1000000
Preprocessor generated node count: 11340/1000000
Post‐expand include size: 209487/2097152 bytes
Template argument size: 55443/2097152 bytes
Highest expansion depth: 16/40
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key mwiki1-mwiki_zh_:pcache:idhash:11640-0!*!0!*!*!*!zh!* and timestamp 20211022194213 -->
</div>                    <!-- /bodycontent -->
                                        <!-- printfooter -->
                    <div class="printfooter">
                    来自“<a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/utility/feature_test&amp;oldid=64944">https://zh.cppreference.com/mwiki/index.php?title=cpp/utility/feature_test&amp;oldid=64944</a>”                    </div>
                    <!-- /printfooter -->
                                                            <!-- catlinks -->
                    <!-- /catlinks -->
                                                            <div class="visualClear"></div>
                    <!-- debughtml -->
                                        <!-- /debughtml -->
                </div>
                <!-- /bodyContent -->
            </div>
        </div>
        <!-- /content -->
        <!-- footer -->
        <div id="cpp-footer-base" class="noprint">
            <div id="footer">
                        <div id="cpp-navigation">
            <h5>导航</h5>
            <ul><li><a href="https://zh.cppreference.com/w/cpp/utility/feature_test">Online version</a></li><li>Offline version retrieved 2022-01-01 00:37.</li></ul></div>
                        <ul id="footer-info">
                                    <li id="footer-info-lastmod"> 本页面最后修改于2020年2月20日 (星期四) 08:27。</li>
                                    <li id="footer-info-viewcount">此页面已被浏览过2,599次。</li>
                            </ul>
                    </div>
        </div>
        <!-- /footer -->
        <script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.MathJax","ext.gadget.ColiruCompiler"], null, true);
}</script>
<script src="../../../common/site_scripts.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 0.818 secs. -->
	</body>
<!-- Cached 20211022194214 -->
</html>